Digital system design with VHDL - گروه برق الکترونیک دانشگاه آزاد اسلامی واحد شوشتر
سفارش تبلیغ
صبا ویژن
Digital system design with VHDL - گروه برق الکترونیک دانشگاه آزاد اسلامی واحد شوشتر
سفارش تبلیغ
صبا ویژن


درباره نویسندگان
Digital system design with VHDL - گروه برق الکترونیک دانشگاه آزاد اسلامی واحد شوشتر

مدیر وبلاگ : م ل[126]
نویسندگان وبلاگ :
مجید بسادت (@)[21]

مجتبی پور موسی
مجتبی پور موسی[23]
مهدی معمار
مهدی معمار (@)[48]

صمد محمدیان (@)[14]


سلام ضمن عرض خوش آمد به شما کاربر گرامی با مشورت با چند تن از برو بچه های گروه برق دانشگاه شوشتر اقدام به تاسیس این وبلاگ بروی این سیستم کردم . ما چند تن از بچه های گروه برق الکترونیک 85 هستیم که زمینه کار در زمینه الکترونیک داریم و هدف اصلی از تاسیس این وبلاگ تبادل اطلاعات بین بچه های رشته برق هست. توی این وبلاگ بیشتر این مطاب رو می بینید : ، تاریخچه برق ، اخبار جدید راجع به برق و الکترونیک ، پروژه های عملی آماده الکترونیک ، جدید ترین نرم افزارهای برق ، اخبار رشته برق دانشگاه ، آشنایی با PLC و اتوماسیون ، برنامه های آماده برای پروگرام ، درد دل های بچه های رشته برق ، و . . .

اعضای افتخاری وبلاگ:
1-دکتر جمشیدی

کل مطالب وبلاگ

خدا حافظ وبلاگ خدا حافظ پارسی بلاگ
[عناوین آرشیوشده]


آرشیو وبلاگ
تیر ماه 1386
مرداد ماه 1386
مهر ماه 1386
آبان ماه 1386
آذر ماه 1386
دی ماه 1386
بهمن ماه 1386
اسفند ماه 1386
بهار 1387
زمستان 1386


لینکهای روزانه
الکترونیک - ربایتک - هواپیما و قایق مدل [742]
گروه برق دانشگاه بروجرد [556]
پروژه های الکترونیک و رباتیک [946]
میزبانی وب شما ارزان [120]
راز یار [215]
پارس موزیک [178]
کانون یاوران مهدی (عج) دانشجویان سراسر کشور [219]
گروه میعادگاه ایرانیان [141]
راز یار را در اینجا ببینید [247]
ایمان آنلاین [176]
وبلاگ مهندسی الکترونیک [668]
وبلاگ دانلود رایگان [1102]
سایت جامع الکترونیک [745]
فقط کراک دانلود کنید [372]
[آرشیو(14)]


لینک دوستان
پروژه های الکترونیک و رباتیک
گروه برق دانشگاه بروجرد
مهندس جوادی نسب
اتجمن رباتیک اسلامی
برق الکترونیک - فنی مهندسی - دانستنیها
اولین کنفرانس دانشجویی مهندسی برق منطقه


عضویت در خبرنامه
 
لوگوی وبلاگ
Digital system design with VHDL - گروه برق الکترونیک دانشگاه آزاد اسلامی واحد شوشتر


لوگوی دوستان





آمار بازدید
بازدید کل :451793
بازدید امروز : 345
 RSS 

Powered by  MyPagerank.Net



Digital system design with VHDL

VHDL
کتاب مرجع برای تدریس Digital system design with VHDL کتاب VHDL است که شنیده ام در ایران آفست شده است به هرحال می تونید تهیه کنید.
  VHDLزبان توصیف سخت افزاری برای طراحی مدارات دیجیتال می باشد. و مانند سایر زبانهای برنامه نویسی دارای دستورات خاص خود می باشد.

VHDL : Very High Speed Integrated Circuit Hardware Description Languege

برای یادگیری زبان VHDL دانستن جبر بول و آشنایی با مدارات منطقی ضروری است. لذا ما فرض می کنیم که دوستان با دو مقوله فوق آشنایی کافی دارند.

و اما یادگیری VHDL چه مزایایی دارد. قبل از هرچیز باید گفت که هدف از یادگیری VHDL خصوصاْ در ایران طراحی مدارات دیجیتال و پیاده سازی در FPGA می باشد  هرچند مدار طراحی شده را بصورت ASIC (آی سی خاص) نیز می توان پیاده سازی نمود اما غالباْ مدارات دیجیتال با هدف پیاده سازی در FPGA طراحی می شوند.

برای یادگیری VHDL در این مقطع نیاز به نرم افزاری برای شبیه سازی مدارات طراحی شده خواهیم داشت. نرم افزارهای زیادی برای این منظور وجود دارند اما بهترین و آسانترین انها Active-HDL می باشد که نتایج شبیه سازی را بصورت شکل موجهای گرافیکی نمایش می دهد. و در عین حال کار کردی آسان دارد. در اولین فرصت نحوه تهیه این نرم افزار را خواهم گفت.

و اما بپردازیم به VHDL :

هر برنامه VHDL دارای دو  قسمت اصلی می باشد. یکی به نام Entity  و دیگری  Architecture :

 در قسمت Entity ورودیها و خروجیهای مدار یا برنامه VHDL و مشخصات آنها تعیین می شود. به عبارت دیگر Entity  مثل یک جعبه سیاه است که از بیرون فقط ورودیها و خروجیها قابل تشخیص است همچنین تعدادی از پارامترهای کلی اما اینکه در این جعبه سیاه چه خبر است در Architecture معلوم می شود.

در Architecture در واقع نحوه ارتباط ورودیها و خروجیها معلوم می شود. مثلاْ اگر در قسمت Entity  دو ورودی A و B و یک خروجی C تعریف کرده ایم در  Architecture می گوییم که این ورودیها چه رابطه ای با خروجی دارند. مثلاْ ممکن است بگوییم  C <= A AND B  یا C <= A XOR B  و ... . بنابراین دیده می شود که یک برنامه VHDL می تواند تنها یک Entity داشته باشد ولی در تعداد Architecture ها محدودیتی ندارد.

ٍEntity  Example1 is

Port (A,B,C: IN Bit ; O1 , O2: OUT Bit)

End Entity Example1;

Architecture AND2 of Example1 is

Begin

 O1 <= A AND B ;

O2 <= B AND C;

End Architecture AND2;

Architecture OR3 of Example1 is

begin

 O1 <= A OR B OR C ;

O2 <= A OR C:

End Architecture OR3;

می بینید که من با یک Entity دو Architecture تعریف کرده ام اما باید توجه داشته باشید که این دو Architecture در واقع بیان کننده دو مدار جداگانه هستند که تنها دارای مرودی و خروجی یکسان هستند. بنابراین در آن واحد فقط از یکی از آنها می توان استفاده نمود. همانگونه که در عمل امکان ندارد یک خروجی در آن واحد هم حاصل OR و هم AND دو یا چند سیگنال ورودی باشد در VHDL نیز امکان ندارد چراکه VHDL نیز همان مدار منطقی می باشد منتها فقط نحوه توصیف تغییر کرده است.

  VHDL دارای ساختاری Event Driven  است یعنی برخلاف سایر زبانهای برنامه نویسی با هر تغییر روی مقادیر ورودی خروجیهای متناظر محاسبه می شوند . اینطور نیست که دستورات به ترتیب و خط به خط اجرا شوند. مثلاْ در مثال فوق در بخش AND2 اگر سیگنال ورودی C تغییر کند بلافاصله مقدار خروجی برای O2 محاسبه می شود بدون آنکه محاسبات مربوط به O1 انجام شود. اما اگر همین مثال را با استفاده از مثلاْ زبان C اجرا می کردیم ابتدا خط بالایی یعنی O1 <=  A AND B اجرا می شد سپس دستور O2 <= B AND C  اجرا می شد.

فصل اول: " طراحی مدارهای ترکیبی با استفاده از مدلهای گیت VHDL "

 1.1  Entity   و  Architecture

 2.1   شناسه ها

 3.1   Netlist

 4.1   انتقال سیگنال

 5.1   پارامترهای عمومی

 6.1   مقادیر ثابت و پورتهای باز

 7.1   Testbench

 8.1   پیکربندی یا Configuration

----------------------------------------------------------------------------

   مدارهای ترکیبی همانطور که می دانیم دارای حالت نیستند و تغییرات روی سیگنالهای ورودی بلافاصله به خروجیهای مدار منتقل می شوند. در این فصل اصول طراحی مدارهای ترکیبی با استفاده از  VHDL  آموزش داده خواهد شد.

 

 

۱.۱  Entity   و  Architecture

 

   همانطور که در جلسه قبل گفته شد ، هر برنامه VHDL ساده دارای دو قسمت می باشد: یک Entity  و یک Architecture . قسمت Entity  یک جعبه سیاهی را معرفی می کند که تنها می توان ورودیها و خروجیها و نوع آنها را دید اما از مدار داخل آن اطلاعاتی به ما نمی دهد. اما Architecture تابع و یا ساختار و معماری مدار داخل جعبه سیاه را معرفی می کند. به عنوان یک مثال ساده فرض کنید یک جعبه سیاه در اختیار داریم که دو سیم به آن وارد شده و یک سیم نیز از آن خارج شده است. اگر قرار باشد آنرا بصورت برنامه VHDL مدل کنیم باید در قسمت Entity اسم ورودیها و خروجیها مشخص شود و همچنین مشخص کنیم که نوع آنها چیست ؟ ( Bit ، Std_logic و ... ) - که بعداً مفصلاً در مورد آن بحث خواهد شد -  و در قسمت Architecture گفته می شود که این سیگنالها چه رابطه ای با هم دارند مثلاً آیا با هم جمع می شوند ، AND می شوند یا هر چیز دیگری. بنابراین می توان گفت که یک برنامه VHDL میتواند دارای چندین Architecture باشد اما بیش از یک Entity مجاز نیست داشته باشد. یعنی یک مدار با ورودیها و خروجیهای مشخص در زمانهای مختلف می تواند عملکردهای متفاوتی داشته باشد. یا حتی می توان برای یک Entity توصیف های متفاوتی از یک عملکرد را ایجاد نمود ، مثلاً برای نشان دادن AND دو سیگنال یکبار ممکن است از گیت AND که قبلاً وجود دارد استفاده کنیم و یا ممکن است آنرا بصورت تابع بولی نمایش دهیم  و یا آنرا بصورت جدول درستی نمایش دهیم. که برای هریک از موارد فوق می توان Architecture جداگانه ای برای یک Entity نوشت.

 

   توصیف Entity با کلمات رزرو شده ENTITY و IS شروع و با کلمات رزرو شده END ENTITY خاتمه می یابد. البته آوردن کلمه ENTITY همراه END اختیاری است اما برای وضوح بیشتر برنامه بهتر است نوشته شود. در VHDL برای مشخص کردن انتهای هر عبارت همانند زبان C از " ; " استفاده می شود. بنابراین توصیف یک Entity  بصورت زیر خواهد بود.

 

ENTITY exp1 IS

PORT ( x , y : IN BIT ; z: OUT BIT);

END ENTITY exp1 ;

 

VHDL اولیه در سال 1987 تعریف شد. در سال 1993 چند استاندارد دیگر نیز به VHDL اضافه شد که باعث سازگاری بیشتر آن با دستور زبان برنامه نویسی شود. در اینجا برای خوانایی بیشتر مثالها از استاندارد 1993 استفاده شده است. در استاندارد 1987 ، ترجیحاً از END بجای END ENTITY استفاده می شد. این مسأله در مورد ساختارهای دیگر زبان نیز صادق بود.

 

   Entity شامل یک توصیف ( Declaration ) می باشد . از کلمه رزرو شده PORT برای مشخص کردن ارتباطات بین Entity  و دنیای خارج استفاده می شود. در مثال قبل سیگنالهای x و y از نوع بیت با استفاده از کلمه رزرو شده IN معرفی شدند و سیگنال z نیز از نوع BIT با استفاده از کلمه رزرو شده OUT بعنوان خروجی مدار معرفی شدند. سیگنالهای دوطرفه ( مرودی و خروجی ) با استفاده از کلمه رزرو شده INOUT در VHDL مشخص می شوند. BIT نوع پیشفرض با دو مقدار 0 و 1 می باشد.

 

  تعریف Architecture شامل اسم ان و اسم Entity مربوطه می باشد. اسم Entity در اینجا باید همان نامی باشد که در قسمت تعریف Entity انتخاب کرده ایم و انتخاب ان نیز کاملاً اختیاری است منتهی مجاز نیستیم که از کلمات رزرو شده استفاده کنیم. در مثال قبل مدل VHDL تنها شامل یک عبارت بین کلمه رزرو شده Begin و خط END Architecture می باشد که در واقع مقدار x AND y   را به سیگنال z منتقل میکند.  تابع AND یک عملگر داخلی VHDL می باشد که مقدار نوع بیت گرفته و خروجی نوع بیت تولید کرده است. VHDL دارای عملگرهای NOT ، AND ، OR ، NAND ، NOR ، XOR و XNOR می باشد که برای مقادیر نوع بیت تعریف شده اند و چنانچه برای سایر انواع متغیرها مورد استفاده قرار گیرد باید کتابخانه های مربوطه که این عملگرها را برای آن نوع متغیر تعریف نموده اند فراخوانی شوند. عملگر NOT دارای بالاترین اولویت بوده و سایر عملگرها دارای اولویت یکسان هستند. لذا اولویت اجرای آنها بترتیب نوشتن ( از چپ به راست ) می باشد. توجه داشته باشید که جبر بول در حالت عادی برای عملگر AND اولویت بالاتری نسبت به OR قائل است اما این مسأله در VHDL صحت ندارد. 

منبع : سایت اردلان الکترونیک



نویسنده : م ل » ساعت 5:8 عصر روز پنج شنبه 86 مهر 5
الکترونیک
نظرات شما ()

www.E85.ir گروه برق الکترونیک85 ویژه دانشجویان


Admin@E85.ir مطالب خود را برای ما ایمیل کنید

این وبلاگ تبدیل به سایت شده است دیگر به درخواست ها در این وبلاگ پاسخ داده نخواهد شد

http://www.E85.irآدرس سایت